文章推荐|基于YOLO v5模型的非住宅区自动垃圾分类箱设计
王文胜1* 年诚旭1 张 超1 阎如鹏2 吴鑫全1 张歆博1
(1.北京信息科技大学 机电工程学院 北京 100192;2.北京信息科技大学 自动化学院 北京 100192)
研究背景
随着机器视觉技术的不断发展,通过视觉方式进行信息处理变得越来越普遍,利用视觉进行目标识别就是其中一个重要应用。垃圾分类是近几年国家大力倡导推广并实施的一项环保重要举措,借助机器视觉进行自动垃圾分类是一项具有价值的前沿研究。目前垃圾分类已贯彻多年,但仍有部分人群不习惯进行垃圾分类投放,主要原因有以下几点:1)对垃圾分类认知模糊,不清楚该如何分类;2)垃圾分类投放耗时耗力。非住宅区的公共场所是指如公交车站、地铁站、火车站、校园户外、体育场、体育馆等地,垃圾投放量小,区别于住宅区内的大型垃圾箱。两者的区别在于住宅区垃圾大多为人们日常生活产生的垃圾,垃圾量大,且多为整袋投放,或者一堆垃圾一起投放,难以实现垃圾自动分类。而小场景下的垃圾产生大多是行人临时产生的少量垃圾,如零食包装、矿泉水瓶、废纸等,多为单一投放,且单人投放量较少。
目前智能垃圾箱有多种形式,主要分为声控方式和视觉方式2类。声控方式需要投放者对着垃圾箱说出垃圾的名称,垃圾箱判定该垃圾所属类别后打开相应垃圾箱,完成投放,如马浚刚等设计了一种基于STM32单片机的语音识别智能垃圾箱,利用语音识别模块ASR-MO8B、语音播报模块WT2003S-16和sG90模拟舵机实现垃圾箱的智能化声音识别,并且能语音控制对应垃圾箱垃圾盖的自动开闭;赵小芬基于语音识别算法,并将其应用于垃圾分类,开发了一种软硬件结合的嵌入式智能垃圾箱。基于视觉方式主要是采用目标检测识别的方法进行垃圾识别和分类,识别过程主要包括图像预处理,特征提取和分类3个步骤,依据特征提取方式可分为传统机器学习方法和深度学习方法。传统机器学习方法是针对图像提取其特征并进行匹配筛选,确定目标种类,如黄浩然对采集到的垃圾图像提取Hu不变矩和12个颜色空间特征作为特征向量,对比特征向量之间的相似性来确定垃圾种类;黄兴华等通过改进局部二值模式(LBP)纹理特征算法,结合梯度方向直方图(HOG)算法,提出一种新的特征融合方法,并利用支持向量机(SVM)进行垃圾分类识别; Irfan等采用Haar-Cascade方法检测地板上的物体并将灰度共生矩阵(GLCM)和定向梯度直方图(HOG)结合起来得到1组特征,利用支持向量机( SVM)将物体进行垃圾分类。深度学习法垃圾分类是利用近年来较流行的深度学习模型进行垃圾识别,如 Wang等提出的通过使用区域提议网络和 ResNet 网络算法训练Faster R-CNN开源框架,再通过 RPN(区域提议网络)层得到输出; Kumar等研究了YOLO v3算法在Darknet神经网络框架中用于训练自制数据集,针对6种对象类别(纸板﹑玻璃、金属、纸张﹑塑料和有机废物)进行了训练,使用YOLO v3-tiny执行了检测任务,以验证YOLO v3算法的能力,结果表明:所提出的YOLO v3方法对具有一定的泛化能力。还有部分学者也进行了相关研究。
本设计不仅实现了垃圾识别软件程序设计,还在Jetson nano 平台下实现了识别算法的嵌入式硬件化,同时配合机械结构设计,完成了实际应用的自动分类垃圾箱的设计。软件部分采用最新深度学习算法模型YOLO v5进行垃圾识别,识别结果通过串口通信发送至Arduino控制板中,由 Arduino控制板控制旋转舵机的运动以及翻转舵机运动,从而实现垃圾自动分类投放。
摘 要
摘要:提出了一种基于YOLO v5模型的自动垃圾分类箱设计,应用于非住宅区的公共场所(如火车站、公交站、商场、校园等)。垃圾箱设计有4个垃圾桶,以2行2列摆放,中间为转轴,可带动轴上方的垃圾临时存储抽屉转动。采用单目摄像头采集视频图像,以英伟达Jetson mano嵌入式芯片作为上位机主控芯片,利用YOLO v5深度学习模型进行垃圾的自动提取与识别,并将上位机识别结果信息通过串口发送至下位机 Arduino控制板,Arduino控制板控制舵机带动垃圾临时储存抽屉开口转动到相应的垃圾桶上方,从而控制升降台倾倒垃圾,完成垃圾自动分类。测试结果表明:垃圾识别结果稳定可靠,准确率可达到93% ,能够实现垃圾自动分类。
01
系统总框架设计
本设计的系统总框架设计流程如图1所示,系统由PC机、Jetson Nano 与Arduino 组成。首先通过PC机收集垃圾分类数据集,对数据集进行预处理和训练,训练采用YOLO v5算法模型,得到权重与训练结并分析。将权重放入Jetson Nano嵌入式设备中,摄像头实时采集图片,Jetson Nano通过训练处理的权重进行垃圾分类识别,并将识别结果发送至Arduino控制板中,Arduino控制板根据信号类别控制大舵机旋转,将垃圾临时存放抽屉的口转到对应的垃圾桶上方,控制翻转舵机翻转,实现垃圾倾倒,完成垃圾投放。识别与控制过程流程图如图2所示,实物图如图3所示。垃圾桶由4个小垃圾箱⒉排⒉列组成,其中有害垃圾箱较小,下方空余空间用于安置下位机控制电路。在装置上方高度为150 mm处安装1个小平台用于放置识别垃圾种类的摄像头。垃圾投放至抽屉状的投放装置内,其底部配有旋转舵机,可实现360°旋转。当摄像头完成垃圾识别,舵机带动投放装置旋转至相应垃圾桶箱位置,装置内投放舵机带动其内四连杆装置将垃圾翻入垃圾桶实现垃圾投放。将4个垃圾桶进行编号,厨余垃圾、可回收垃圾、有害垃圾和其他垃圾对应编号分别为0、1、2、3 ,垃圾投放装置起始位置对应0号垃圾桶。当视觉模块输出信号为0时,表示垃圾为厨余垃圾,单片机无需控制投放装置旋转,直接进行投放即可;当视觉模块输出信号为1时,表示垃圾为可回收垃圾,投放装置需要延导轨顺时针旋转90°再进行投放,依次类推。
图1 自动垃圾分类箱系统
图2 自动垃圾分类箱流程
图3 自动垃圾分类箱实物
图4 硬件电路设计
02
下位机控制设计
1. 硬件电路设计
下位机硬件电路设计如图4所示,Arduino 工作电压一般为3~5 V,符合Led指示灯和4个红外发射器的电压要求,故可直接将该5个器件连接在引脚与CND之间,实现开关控制。LED正极连接Arduino 6号引脚,红外发射器1、2、3、4的正极分别连接Arduino的 11、12、8、7号引脚。同理,2个舵机通过Arduino的+5V和 GND形成回路进行供电。2个舵机均通过PWM信号控制,对应Arduino 10号引脚和9号引脚,通过不同的占空比转动对应的角度,实现了云台及翻斗的精准控制。4个光电传感器供电原理同上,RX引脚分别连接Arduino 的5、4、3、2引脚,同时将Arduino 上的这4个引脚定义为输入模式,实时检测垃圾桶的装载状态。
从图4中可知:电路系统一共包括3个模块,分别为光电传感器与红外发射器模块、舵机模块、Led提示模块:
1)光电传感器与红外发射器模块。
用于检测垃圾桶是否已满。采用4个光电传感器与红外发射器组,分别对应4个垃圾桶,将该模块安装在垃圾桶高约75%位置,将每个红外发射器对准光电传感器,当垃圾遮挡传感器时,会产生数字电平信号或模拟电压信号(本垃圾桶采用数字电平信号) ,芯片检测该电信号,能够方便地实现满载报警功能。
2) Led满载指示灯模块。
用于提示用户垃圾桶是否已满。检测到垃圾桶已满后,向上位机发送1个已满信号(4个垃圾桶的已满信号分别为a , b、 c , d),同时点亮Led灯,作为用户可见的垃圾桶已满提示,此时Arduino进入长时间待机状态,不再接收上位机所传的数据。待用户倒完垃圾,初始化(复位)Arduino后,Arduino恢复正常工作, Led 灯常闭。
3)舵机模块。
用于垃圾投放。舵机模块由1个180°舵机(小舵机)和1个360°舵机(大舵机)2个舵机组成。大舵机采用磁编码超大扭矩合金舵机,该舵机为数码舵机,反应灵敏,行程大,零盲区,可持续工作,与其他舵机上使用保险丝保护的完全不同,保险丝一旦熔断,舵机无法继续工作,增加了家用垃圾桶的安全性。以脉冲信号为输人模式,操作简单,用于对云台水平旋转的控制。小舵机采用金属单双轴舵机,数字舵机精度高,金属外壳散热快,金属齿轮增强了使用寿命,用于对翻斗的控制。
2. 下位机软件设计
下位机软件工作流程如图5所示。首先启动Arduino,通过光电传感器与红外发射器模块判断垃圾桶是否已满。若垃圾桶已满,向上位机发送已满信号、点亮Led灯同时进入待机状态。若垃圾桶未满,则Arduino接收上位机信号,信号0、1、2、3分别对应厨余垃圾、可回收垃圾、有害垃圾、其他垃圾,Arduino与上位机Jetson Nano 之间的通信通过ASCII码传输,对应接收到的值为48、49、50、51 ,通过对这4个值的判断,来控制舵机模块准确将垃圾投进对应的垃圾箱。大舵机对应不同种类垃圾,0号垃圾桶逆时针旋转45°,1号垃圾桶顺时针旋转45°,2号垃圾桶顺时针旋转135°,3号垃圾桶逆时针旋转135°,从而将云台对准相应的垃圾桶,之后小舵机旋转30°将翻斗抬起,将垃圾准确迅速地投入垃圾桶。2个动作完成后,2个舵机分别回到初始0°状态。投放完毕后﹐翻斗、云台分别回正,同时检测垃圾桶是否已满,并重复上述步骤。
图5 下位机软件工作流程
03
上位机YOLO v5标志牌识别
上位机识别程序利用YOLO v5模型进行垃圾分类识别,采用Jetson Nano作为上位机来运行程序,识别完成后将识别结果通过串口发送给下位机Arduino ,并进行相关动作。由于垃圾箱内识别区是相对封闭稳定的区域,光照基本不变、识别背景稳定,给高精度识别带来了便利。
1. 数据集制作
本设计以常见垃圾为例,尤其针对非住宅区的公共场所(如地铁站﹑火车站、学校等场所)所产生的垃圾为例进行算法研究,收集的常见垃圾数据,包括食品包装纸、矿泉水瓶、饮料瓶、易拉罐、塑料盒、电池、水果皮核、干果壳等。每一小类采集了约100张数据,包括不同拍摄角度,不同腐坏程度等,共采集了4000张数据,其中 3500张用于训练,500张用于测试。再将每小类划分到厨余垃圾、可回收垃圾、有害垃圾以及其他垃圾中。部分不同垃圾的真实训练数据集如图6所示。标注工具采用LabelImg 软件进行标注,标注过程如图7所示。
图6 部分训练数据集图像
图7 标注图像过程
2. YOLO v5网络模型
YOLO v5模型的网络结构图如图8所示。可知:网络分为4个通用模块,包括Input 、 Blackbone 网络、Neck 网络和Outputo。
图8 YOLO v5网络框图
1 ) Input:采用Mosaic数据增强的方式,以随机缩放、随机裁剪、随机排布的方式对数据进行拼接。在网络训练中,网络在初始锚框的基础上输出预测框,进而与真实框groundtruth进行比对,计算两者差距,再反向更新,迭代网络参数,达到自适应锚框计算。同时,对原始图像自适应的添加最少的黑边,以此减少计算量,提升目标检测速度。
2 ) Blackbone 网络:以Focus 结构作为基准网络,原始图像输人到Focus结构中,使用32个卷积核进行切片操作,最终将其变成304×304×32的特征图,其中应用了CSP1__X 结构。
3 ) Neck 网络:采用FPN+PAN的结构, FPN自顶向下将高层的特征信息通过上采样的方式进行传递融合,得到进行预测的特征图。FPN层的后面添加了一个自底向上的特征金字塔,包含2个PAN结构。这样结合操作,FPN层自顶向下传达强语义特征,而特征金字塔则自底向上传达强定位特征,实现从不同的主干层对不同的检测层进行特征聚合。
4 ) Output:目标检测的后处理过程中,采用GIOU_Loss做 Bounding box的损失函数,采用加权nms的方式进行极大值抑制来进行目标框的筛选工作。
3. 训练结果及分析
数据集训练程序的运行环境为windows 10系统、cudnn8. 0 、 cuda10.2、显卡型号为8 GB的 gtx1050、pytorch框架版本为1.7.1。垃圾图像数据集的训练过程设置轮数为400轮,将输入图像尺寸设置为640 mm×640 mm,同时设置每批训练数据量为16。训练完成后,得到训练结果如图9所示。
图9 训练指标变化图
图9反映了随着次数增加,训练指标的变化趋势。总训练次数为400轮。其中, GIoU为训练数据集模型的损失函数;Objectness为目标的损失函数均值,值越小目标检测越准确;Classification为分类的损失函数均值,值越小目标检测越准确;Precision表示精度;Recall表示召回率。从图9可以看出:随着训练次数的增加,精度和召回率在不断升高,最终稳定在接近100%的数值附近; f~h前面加了val,表示为验证数据集的结果;mAP表示mean AveragePrecision , 即平均精度, mAP@ 0.5参数为损失函数设为0.5时,每一类图片的AP值的平均; mAP@ 0.5 :0.95表示损失函数在步长为0.5、范围在0.5~0.95阈值下的平均mAP。从图9中可以看出,当训练达到80轮左右时, mAP@ 0.5上升到了1.0 , mAP@ 0.5∶0.95上升到了0.7左右,并且随着训练轮数的增加不断提高,最终达到0.8左右,训练精度较高。
运行成功后部分结果如图10所示。运行结果中,“厨余垃圾”“可回收垃圾”等标识是识别到的图像类别,后面的数字表示识别的置信度得分。可以看出,第1行为其他垃圾,主要以零食等塑料包装袋为主;第2行为可回收垃圾,以易拉罐、矿泉水瓶为主;第3行为厨余垃圾,以水果皮、瓜子皮等为主;第4行为有害垃圾,以电池为主。识别判断物体最为接近的一类,给出置信度,识别到的置信度得分总体均在0.5以上,处于一个较高的范围。
图10 识别结果
将基于YOLO v5算法的垃圾分类识别结果与YOLO v3深度学习算法以及传统的机器学习算法HOG+SVM对比,结果如表1所示。本研究使用了384种垃圾进行算法的检测。从表1中可知:YOLO v3深度学习精度低于YOLO v5算法,传统机器学习的方法HOG+SVM 准确率更低,只有63%。YOLO v5算法检测结果准确,在数据集丰富的情况下准确率高。本研究对垃圾图像进行了训练,准确率可达到93.0% ,因此可用于实际应用。
表1 不同算法识别结果对比
04
结论
本研究提出一种基于YOLO v5模型的自动垃圾分类箱设计,应用于非居民生活住宅小区的公共场所。垃圾箱设计采用机器视觉的方式,设计了视觉模块、控制模块和机械模块,利用摄像头采集图像,YOLO v5模型在Jetson nano高性能的嵌入式芯片中运行识别垃圾种类,上位机同时将垃圾识别结果发送至下位机控制舵机旋转完成垃圾投放。
本设计立足于国家政策的需求,满足特定场所的垃圾自动分类需求,方便行人完成垃圾分类。采用最新的深度学习模型YOLO v5进行垃圾分类图像的训练和分类识别,高效准确地完成了垃圾的自动分类工作,试验结果表明本设计垃圾分类准确率可达93% ,基本满足实际需求。
来源:王文胜,年诚旭,张超,等.基于YOLO v5模型的非住宅区自动垃圾分类箱设计[J].环境工程,2022,40(3):159-165.
全文下载链接:
关于期刊
《环境工程》创刊于1982年,是国内外公开发行的国家级环境科学类期刊,由中冶建筑研究总院有限公司主办、工业建筑杂志社有限公司出版发行。本刊主编由中国工程院院士、美国国家工程院外籍院士、中国科学院生态环境研究中心研究员、清华大学教授曲久辉担任。报导内容涵盖水污染防治、大气污染控制、有机固废生物处理与资源化、过程工程环境污染控制与资源化、环境生态工程、海绵城市建设规划与实践、碳减排技术路径研究与实践等。本刊已入选北大中文核心期刊要目总览、中国科学引文数据库(CSCD)来源期刊(核心库)、RCCSE中国核心学术期刊、ISTIC中国科技核心期刊、环境科学领域高质量科技期刊分级目录T2级、世界期刊影响力指数(WJCI)报告等。在科学技术迅猛发展和全球变化的大背景下,《环境工程》既要关注解决环境治理工程难题的最新科技进展,也必须突破以末端治理为主要目标的学科局限,深刻认识制约我国社会经济发展的重大环境工程问题,深入思考环境工程科技发展的未来与方向,深度融合相关学科的科技成果,报导更有学术高度和应用价值的综合性成果。
推荐阅读:
因为公众号平台更改了推送规则,如果不想错过环境工程的文章,请记得读完点一下“赞”“在看”,这样每次新文章推送才会第一时间出现在您的订阅列表里。
人生总会有遗漏,但是不要忘记点“在看”~
环保面前 没有旁观者